css: Fix segfault when GtkCssStyleChange is NULL on gtk_widget_real_style_updated()
authorJuan Pablo Ugarte <ugarte@endlessm.com>
Thu, 14 Dec 2017 18:35:40 +0000 (15:35 -0300)
committerJuan Pablo Ugarte <juanpablougarte@gmail.com>
Fri, 15 Dec 2017 13:28:21 +0000 (10:28 -0300)
https://bugzilla.gnome.org/show_bug.cgi?id=791281

gtk/gtkwidget.c

index 13f9cd59a84078e05b7621e180b49a5bc6ef69c2..174b64afcfbbd4ee772896dc8fccedef0725c449 100644 (file)
@@ -6891,11 +6891,15 @@ gtk_widget_real_state_flags_changed (GtkWidget     *widget,
 static void
 gtk_widget_real_style_updated (GtkWidget *widget)
 {
+  GtkCssStyleChange *change = NULL;
+
   gtk_widget_update_alpha (widget);
 
   if (widget->priv->context)
+    change = gtk_style_context_get_change (widget->priv->context);
+
+  if (change)
     {
-      GtkCssStyleChange *change = gtk_style_context_get_change (widget->priv->context);
       const gboolean has_text = gtk_widget_peek_pango_context (widget) != NULL;
 
       if (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT))
@@ -6903,8 +6907,7 @@ gtk_widget_real_style_updated (GtkWidget *widget)
 
       if (widget->priv->anchored)
         {
-          if (change == NULL ||
-              gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE) ||
+          if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE) ||
               (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_SIZE)))
             {
               gtk_widget_queue_resize (widget);